home *** CD-ROM | disk | FTP | other *** search
/ Gamers Delight 2 / Gamers Delight 2.iso / Aminet / game / misc / Life_3d.lha / Life-3d / readme < prev    next >
Text File  |  1987-05-02  |  7KB  |  137 lines

  1.                     LIFE3  version 1.2
  2.             copywrite 1987 by Bob Benedict
  3.  
  4.  
  5.  LIFE3 is a 3D version of the classic cellular-automaton game. A good
  6. reference is A K Dewdney's COMPUTER RECREATIONS column in Scientific
  7. American.
  8.  
  9. New Features
  10.   Now uses whole CRT ( 344x218 screen ) 
  11.      note: LIFE3 recenters screen. If you choose ToBack the old center is
  12.      restored for your other applications. After returning to LIFE3 select
  13.      the menu and LIFE3 will recenter.  
  14.   Faster graphics and generation routines
  15.   Can now select ToBack during runs, runs in backround WITHOUT drawing (faster)
  16.      to see latest universe after returning select VIEW or ORIGIN
  17.   New commands: MERGE, ->SEED, SEED->
  18.   More efficient storage- arrays increased to 4000
  19.   General fix of glitches in last version
  20.  
  21. Commercial 1
  22.  This is a shareware program. If you find it useful please send $20 to:
  23.                  Bob Benedict
  24.                  155 Barnes Dr
  25.                  Tallmadge, Ohio 44278
  26. and I'll sent you a disk with the latest version, source and examples.
  27. If you're not interested in the source, send what you think is appropriate.
  28.  
  29. Commercial 2
  30.  3D life has explored heavily by Carter Bays who will send you
  31. a 40 page document on it for $3 to cover costs. His address is 
  32.    Carter Bays
  33.    Dept. of Computer Science
  34.    University of South Carolina
  35.    Columbia, S.C. 29028
  36.  
  37. Commercial 3 
  38.  A 3D Life program is available from Carter Bays for the MAC for $19 ( $29
  39. for a MAC+ version ). His program is NOT shareware and we are not in any
  40. way connected.
  41.  
  42. LIFE3
  43.  3D life is played on a 3D grid of cubic cells. Cells in this version have
  44. two states: alive or dead. Each suceeding generation is created by using
  45. a count of the live neighbors of a cell and a set of rules. If a cell is
  46. live and it has less than EL neighbors or more than EU neighbors it dies.
  47. Otherwise it continues to live. If a cell is dead and it has less than
  48. FL neighbors or greater than FU neighbors it continues to stay dead. Otherwise
  49. it comes to life. 
  50.  
  51.  FL, FU, EL ,and EU are parameters that control the laws of the universe the
  52. cells live in. These may be adjusted by taking the "LAWS" pick from the "RUN"
  53. menu. Remember to hit RETURN after entering a value in a string gadget.
  54.  
  55.  Cells in this AMIGA version live in a finite 32x32x32 universe. The surface
  56. of this cube ( any coordinate 0 or 31) is sterile. The universe can be 
  57. initially populated three ways: a file can be LOADed, the EDIT option can
  58. be used or the a region filled with the RANDOM option. When a file is loaded
  59. the universe is first cleared. When a file is MERGEd it is merged with the
  60. existing universe.
  61.  
  62.  The EDIT menu pick opens a 32x32 (x,y) window on a slice (z=constant) of the
  63. universe. The slider is used to pick the slice to edit. A mouse click will
  64. toggle a cell on or off. The edited universe is stored in the "seed"
  65. universe and used to compute new generations.
  66.  
  67.  The RANDOM menu pick clears the "seed" universe and then fills a rectangular
  68. region centered around the ORIGIN with the density of live cells that you
  69. choose. The actual number of cells set on is usually less than the density
  70. times the volume since a location may be chosen more than once. The random
  71. number generator uses the algorithm from Wichman and Hill's MARCH 87 BYTE
  72. article. The generators are seeded by the system clock each time RANDOM
  73. is chosen. 
  74.  
  75.  The LOAD menu pick loads the seed universe from a file. The file also
  76. contains the law setting for that universe. The files used are straight ASCII
  77. text files that may be generated with a text editor or another program 
  78. ( in case you don't trust my random number generators). The STORE menu
  79. pick stores the current seed universe ( usually NOT the universe displayed!!).
  80. The ->SEED menu pick stores the current universe in the "seed" universe.
  81. This lets you STORE that universe in a file. Its complement SEED-> reseeds
  82. the universe to replay the last seed. 
  83.  
  84.  The ORIGIN menu pick sets the origin that is the center of the present view.
  85. The VIEW menu pick sets the location of your eye. You'r so interested in
  86. the origin that you always look directly at it. The view, origin and cells
  87. are all relative to a global right hand coordinate system ( y up, z out).
  88.  
  89.  To run the next generation just click with the select button in the window.
  90. To run many steps use the RUN menu pick. A mouse click will stop a multi-
  91. step run. The number of steps is bounded at 10000 to prevent strange behavior
  92. if you forget to hit return after entering a value in the string gadget.
  93. You can now select ToBack during runs. LIFE3 will run in the backround WITHOUT
  94. drawing cubes ( much faster ). To see latest universe after returning select
  95. VIEW or ORIGIN.
  96.  
  97. Algorithm
  98.   A sparse matrix technique is used to create new generations. A universe
  99. has two representations: a 32x32 array of integers as a bit map and an
  100. array of structures that hold coordinates of live cells and some info used in 
  101. rendering. Only cells adjacent to live cells are checked in generating a 
  102. new universe. A spare bit map is used to keep track of cells checked so that
  103. no cell is checked twice. This cuts the amount of checking down by several
  104. orders of magnitude. A live cell has its bit set in the bitmap and is stored
  105. in the cell array. Its distance along the line from the eye to the origin
  106. is computed and the cells sorted in decreasing order. The cell list is clipped
  107. to remove cells behind the eye and the cells rendered with the most distant
  108. cells first.
  109.  
  110.  This approach works well for a large universe that is sparsely populated.
  111. One drawback is that the number of cells living can not exceed the size of the
  112. cells array. The present version uses arrays that hold up to 4000 cells.
  113.  
  114.  This program was written in MANX C (3.4). It has no assembly language
  115. routines. I'd like to thank Henry Shilling for his help with the C language
  116. and the cantankerous C compiler. Also thanks to Charlie Heath for the slick
  117. file requester. 
  118.  
  119. Next Steps
  120.   Adding copy, cut and insert to the editor to ease seed generation, as
  121. well as commands to rotate the pattern in the clip.
  122.   Adding wraparound instead of death at the universe surfaces.
  123. What would you like to see?
  124.  
  125.  
  126. Growing Seeds
  127.  
  128. Hints extracted from Carter Bays paper:
  129.  
  130.  Some laws lead to explosive growth. This can be used to fill a seed universe
  131. from a single cell or a sparse random pattern. Using the notation
  132. ( EL EU FL FU )
  133.    (1 26 1 26) leads from a single cell to a cube 
  134.    (1 9 1 9) leads from a single cell to a hollow cube with some internal
  135.         structure 
  136.    (4 5 1 2) leads from a random pattern to some interesting seeds
  137.